package com.lcredu.lcrliving.commodity.service;

import com.baomidou.mybatisplus.extension.service.IService;

import com.lcredu.common.util.PageUtils;
import com.lcredu.lcrliving.commodity.entity.AttrAttrgroupRelationEntity;
import com.lcredu.lcrliving.commodity.entity.AttrEntity;

import java.util.List;
import java.util.Map;

/**
 * 商品属性表
 *
 * @author lcr
 * @email lcr@gmail.com
 * @date 2023-11-19 16:10:33
 */
public interface AttrService extends IService<AttrEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 增加接口,完成保存商品属性的同时,需要保存该基本属性和属性组的关联关系
     */
    void saveAttrAndRelation(AttrEntity attrEntity);

    //增加根据分类categoryId+查询条件[key]进行分页检索的API接口
    //根据自己的业务逻辑进行修改
    PageUtils queryBasePage(Map<String, Object> params,Long categoryId);


    PageUtils querySalePage(Map<String, Object> params,Long categoryId);

    /**
     * 根据属性组id,返回该属性组关联的商品属性(基本属性)
     */
    List<AttrEntity>getRelationAttr(Long attrgroupId);

    /**
     * 批量删除属性组和属性的关联关系
     */
    void deleteRelation(AttrAttrgroupRelationEntity[] attrAttrgroupRelationEntities);

    /**
     * 获取某个属性组可以关联的基本属性
     * 1.如果某个基本属性已经关联了就不能再次关联
     * 2.某个属性组可以关联的基本属性必须是同一类
     */
    PageUtils getAllowRelationAttr(Map<String, Object> params,Long attrgroupId);
}

